home *** CD-ROM | disk | FTP | other *** search
- /*-------------------------------------------------------------------------------------
- *
- * Simple Sample Application Framework
- *
- * ©1991 Apple Computer
- *
- -------------------------------------------------------------------------------------*/
- /*
- * DimmerWindow.c -- window class instantiation/dispatching
- *
- * change history:
- *
- * SJF 11/7/91 1.0d1 initial coding
- *
- */
-
- #include "const.h"
- #include "strconst.h"
- #include "mytypes.h"
- #include "globals.h"
- #include "utils.h"
- #include "windowstuff.h"
- #include "twilight.h"
- #include "grafstuff.h"
-
- #include "dimmer.window.h"
- #include "base.window.h"
-
- extern MonitorsInfoPtr gMonitorsInfoPtr;
-
- /* instantiate a new dimmer window */
-
- WindowPtr DimmerMakeWindow(Rect *wRect,StringPtr title,Boolean visible,short wdefProc,Boolean goAwayFlag)
- {
- TInfoHndl infoHndl;
- TInfoPtr infoPtr;
- WindowPtr theWindow;
- Str255 defaultTitle;
-
- theWindow = BaseMakeWindow(wRect,title,visible,wdefProc,goAwayFlag);
-
- infoHndl = (TInfoHndl)GetWRefCon(theWindow);
- MoveHHi((Handle)infoHndl);
- HLock((Handle)infoHndl);
- infoPtr = *infoHndl;
-
- infoPtr->m_idle = DimmerIdleWindow;
- // infoPtr->m_fixCursor = DimmerFixCursorWindow;
- // infoPtr->m_activate = DimmerActivateWindow;
- // infoPtr->m_deactivate = DimmerDeactivateWindow;
- infoPtr->m_update = DimmerUpdateWindow;
- // infoPtr->m_key = DimmerKeyWindow;
- // infoPtr->m_resize = DimmerResizeWindow;
- // infoPtr->m_click = DimmerClickWindow;
- infoPtr->m_destroy = DimmerDestroyWindow;
- // infoPtr->m_undo = DimmerUndoWindow;
- // infoPtr->m_cut = DimmerCutWindow;
- // infoPtr->m_copy = DimmerCopyWindow;
- // infoPtr->m_paste = DimmerPasteWindow;
- // infoPtr->m_clear = DimmerClearWindow;
- // infoPtr->m_print = DimmerPrintWindow;
- // infoPtr->m_pageSetup = DimmerPageSetupWindow;
- // infoPtr->m_save = DimmerSaveWindow;
- infoPtr->m_load = DimmerLoadWindow;
- // infoPtr->m_event = DimmerEventWindow;
-
- infoPtr->saved = true;
- infoPtr->changed = false;
- infoPtr->otherData[0] = nil;
-
- ((WindowPeek)theWindow)->windowKind = kDimmerWindow;
- HUnlock((Handle)infoHndl);
-
- return theWindow;
- }
-
-
- void *DimmerDestroyWindow(WindowPtr window,TInfoPtr info,void *data)
- {
- OSErr err;
- DimmerModulePtr theDimmer;
-
- theDimmer = info->otherData[0];
- if (!theDimmer)
- return nil;
-
- SetPort(window);
- gMonitorsInfoPtr->monitorList[0].bounds = window->portRect;
-
- err = StopDimmer(theDimmer);
- FreeDimmer(theDimmer);
-
- if (err!=noErr)
- DebugStr(theDimmer->dimVars->errorMessage);
-
- return nil;
- }
-
-
- void *DimmerIdleWindow(WindowPtr window,TInfoPtr info,void *data)
- {
- OSErr err;
- DimmerModulePtr theDimmer;
-
- theDimmer = info->otherData[0];
- if (!theDimmer)
- return nil;
-
- SetPort(window);
- gMonitorsInfoPtr->monitorList[0].bounds = window->portRect;
-
- err = RunDimmer(theDimmer);
- if (err==RestartMe)
- InitDimmer(theDimmer);
- if (err==ImDone)
- err = StopDimmer(theDimmer);
- if (err!=noErr)
- DebugStr(theDimmer->dimVars->errorMessage);
-
- return nil;
- }
-
-
- void *DimmerUpdateWindow(WindowPtr window,TInfoPtr info,void *data)
- {
- DimmerModulePtr theDimmer;
- FSSpec *dimFile;
- OSErr err;
- RgnHandle saveClip;
-
- SetPort(window);
- gMonitorsInfoPtr->monitorList[0].bounds = window->portRect;
-
- saveClip = NewRgn();
- GetClip(saveClip);
- ClipRect(&window->portRect);
- FillRect(&window->portRect,qd.black);
- SetClip(saveClip);
- DisposeRgn(saveClip);
-
- theDimmer = info->otherData[0];
-
- if (theDimmer) {
- StopDimmer(theDimmer);
- FreeDimmer(theDimmer);
- }
-
- dimFile = &info->fileSpec;
-
- err = GetDimmer(dimFile,&theDimmer);
- if (err!=noErr)
- return nil;
-
- err = SelectModule(theDimmer);
- if (err!=noErr)
- return nil;
-
- err = InitDimmer(theDimmer);
- if (err!=noErr)
- return nil;
-
- err = StartDimmer(theDimmer);
- if (err!=noErr)
- return nil;
-
- info->otherData[0] = theDimmer;
-
- return nil;
- }
-
-
- void *DimmerLoadWindow(WindowPtr window,TInfoPtr info,void *data)
- {
- DimmerModulePtr theDimmer;
- OSErr err;
-
- return nil;
- }